// styleLoader.js - 动态样式加载器

/**
 * 动态加载样式文件
 * @param {boolean} isLargeFont 是否使用大字体模式
 */
export function loadStyleSheet(isLargeFont) {
  // 移除之前可能已经加载的样式
  removeExistingStyleSheet();

  // 根据当前模式选择样式文件
  // 使用相对路径而不是绝对路径，避免路径解析错误
  const styleFile = isLargeFont ? './largeStyle.css' : './normalStyle.css';

  // 创建link元素并添加到head
  const linkElement = document.createElement('link');
  linkElement.setAttribute('rel', 'stylesheet');
  linkElement.setAttribute('type', 'text/css');
  linkElement.setAttribute('href', styleFile);
  linkElement.setAttribute('id', 'dynamic-style-sheet');

  document.head.appendChild(linkElement);

  // 更新body的class，确保全局样式一致性
  updateBodyClass(isLargeFont);

  // 保存当前模式到localStorage
  localStorage.setItem('isLargeFont', isLargeFont ? 'true' : 'false');
}

/**
 * 移除已存在的动态样式表
 */
function removeExistingStyleSheet() {
  const existingLink = document.getElementById('dynamic-style-sheet');
  if (existingLink) {
    existingLink.parentNode.removeChild(existingLink);
  }
}

/**
 * 初始化样式，从localStorage读取之前的设置
 * @returns {boolean} 当前是否为大字体模式
 */
export function initializeStyle() {
  // 从localStorage读取设置，如果没有则默认为false
  const savedSetting = localStorage.getItem('isLargeFont');
  const isLargeFont = savedSetting === 'true';

  // 确保样式表被正确加载
  loadStyleSheet(isLargeFont);

  // 返回当前模式
  return isLargeFont;
}

/**
 * 更新body元素的class，确保全局样式一致性
 * @param {boolean} isLargeFont 是否使用大字体模式
 */
function updateBodyClass(isLargeFont) {
  if (isLargeFont) {
    document.body.classList.add('large-font');
  } else {
    document.body.classList.remove('large-font');
  }
}